<?php
class TcAccionesController extends AppController {
	var $name = 'TcAcciones';
	var $helpers = array('Ajax','Javascript','Html','Form','Boton');
	var $uses = array ('TcAccione','MgTipoAccione','TcContrato','TcEstadoAccione','MgEmpleado');
	var $components = array('RequestHandler');

	//................................................................................................................
	function index()
	{
		$this->pageTitle = 'Acciones';
	}

	//................................................................................................................

	function insertar( $contrato=null)
	{
		$this->pageTitle='Acciones por Contrato';
		$descontrato=$this->TcContrato->find('first',
		array('fields'=>array('TcContrato.descripcion'),
						  						'conditions'=>array('TcContrato.id'=>$contrato)));		
		$this->set('contratoid',$descontrato['TcContrato']['descripcion']);
		$listadoTipoAccione=$this->MgTipoAccione->find('all',
		array('field'=>array('MgTipoAccione.id','MgTipoAccione.descripcion'),
														'order'=>'MgTipoAccione.descripcion ASC'));
		$this->set('tipoaccione', Set::combine($listadoTipoAccione,"{n}.MgTipoAccione.id","{n}.MgTipoAccione.descripcion"));
		$listadoempleado=$this->MgEmpleado->find('all',
		array('field'=>array('MgEmpleado.id','MgEmpleado.nombre_corto'),
												 'order'=>'MgEmpleado.nombre_corto ASC'));
		$this->set('mgempleado', Set::combine($listadoempleado,"{n}.MgEmpleado.id","{n}.MgEmpleado.nombre_corto"));
		if (!empty($this->data['TcAccione']['tc_contrato_des']))
		{
			$idcontrato=$this->TcContrato->find('first',
			array('conditions'=>array('TcContrato.descripcion'=>$this->data['TcAccione']['tc_contrato_des'],'TcContrato.tc_estado_contrato_id <>'=>'3')));
			$this->data['TcAccione']['tc_contrato_id']= $idcontrato['TcContrato']['id'];
		}
		$existedesc=$this->TcAccione->find('first',
		array('order'=>'TcAccione.id ASC',
												  'conditions'=>array('TcAccione.tc_contrato_id'=>$this->data['TcAccione']['tc_contrato_id'],'TcAccione.mg_tipo_accione_id'=>$this->data['TcAccione']['mg_tipo_accione_id'],'TcAccione.tc_estado_accione_id'=>1 )));

		if (empty($existedesc)){
			if(!empty($this->data)){
				$this->TcAccione->create();
				$this->data['TcAccione']['descripcion']=strtoupper($this->data['TcAccione']['descripcion']);
				if($this->TcAccione->save($this->data)){
					$this->Session->setFlash('Datos Guardados Exitosamente');
					$this->redirect(array('controller'=>'TcAcciones','action'=>'mostrar',$this->data['TcAccione']['tc_contrato_id']));
				}
				else {
					$this->Session->setFlash('Error NO se creo el cliente');
				}
			}
		}
		else {
			$this->Session->setFlash('Accione ya existe para el contrato');
		}
	}

	//................................................................................................................

	function insertar_ext()
	{
		Configure::write('debug','0');
		$this->layout = 'ajax';
		$response = array();						
		$existedesc=$this->TcAccione->find('first',
		array('order'=>'TcAccione.id ASC',
			  'conditions'=>array('TcAccione.tc_contrato_id'=>$this->data['TcAccione']['tc_contrato_id'],
			  					  'TcAccione.mg_tipo_accione_id'=>$this->data['TcAccione']['mg_tipo_accione_id'],
			  					  'TcAccione.tc_estado_accione_id'=>1 )));
		if (empty($existedesc)){
			if(!empty($this->data)){
				$this->TcAccione->create();
				$this->data['TcAccione']['descripcion']=strtoupper($this->data['TcAccione']['descripcion']);
				$this->data['TcAccione']['adicionado_por'] =$this->Session->read('Auth.MgUsuario.usuario');
				if($this->TcAccione->save($this->data)){
					$response = array(
					'success'=> true,
					'errors'=>$this->validateErrors($this->TcAccione));
				}
				else {
					$Erros = array();
			 		foreach ($this->validateErrors($this->TcAccione) as $key => $value)
					{
    					$Erros['data[TcAccione]['.$key.']'] = $value;
					}  
				
			 		$response = array(
   		     		'success' => false,
		     		'errors' =>$Erros
			  		);
				}
				
				}
			}
		else {
				$Erros = array();
				$Erros['data[TcAccione][mg_tipo_accione_id]'] = 'Ya existe el tipo de accion para el contrato';
				$response = array(
				'success'=> false,
				'errors'=>$Erros);
			}
		$this->set('response',$response);			
	}	

	//................................................................................................................

	function mostrar($id=null,$tipo=null)
	{
		if(!empty($id) or $id<>0){
			$datos=$this->TcAccione->find('all',
			array('conditions'=>array('TcAccione.tc_contrato_id' =>$id,'TcAccione.tc_estado_accione_id'=>'1')));
			$this->set('tcAcciones',$datos);
			$this->set('contratoid',$id);
		}
		else {
			$datos=$this->TcAccione->find('all',
			array('conditions'=>array('TcAccione.tc_estado_accione_id'=>'1','TcAccione.mg_tipo_accione_id'=>$tipo)));
			$this->set('tcAcciones', $datos);
			$this->set('contratoid',0);
			$this->set('tipo',$tipo);
		}
	}
	//................................................................................................................

	function buscaAccion()
	{
		Configure::write('debug', '0');  //set debug to 0 for this function because debugging info breaks the XMLHttpRequest
		$this->layout = "ajax"; //this tells the controller to use the Ajax layout instead of the default layout (since we're using ajax . . .)
		$fields_array = array();
		$limit = 5;
		$page = 1;
		$accionA = array();
		if(!empty($_POST['limit']))
		$limit = $_POST['limit'];
		if(!empty($_POST['start']))
		$page = ($_POST['start']/$limit)+1;
		if(!empty($_POST['contratoid']))
		$contratoid = $_POST['contratoid'];

		$fields_array= array('TcAccione.id','TcAccione.tc_contrato_id','TcAccione.descripcion',
							 'TcAccione.fecha_inicial', 'TcAccione.fecha_final', 'TcAccione.created',
							 'TcAccione.adicionado_por', 'TcAccione.descripcion_edicion',
							 'MgTipoAccione.descripcion', 'TcEstadoAccione.descripcion','MgEmpleado.nombre_corto'
							 ,'TcAccione.modificado_por','TcAccione.modified','TcAccione.tc_estado_accione_id','TcContrato.contrato'
							 ,'TcContrato.descripcion'
							 );
							 if(!empty($contratoid)){
							 	$count = $this->TcAccione->find('count',
							 	array('conditions'=>array('TcAccione.tc_contrato_id' =>$contratoid)));
							 	$accionA=$this->TcAccione->find('all',
							 	array('conditions'=>array('TcAccione.tc_contrato_id' =>$contratoid),
										   		 'fields'=>$fields_array,
										   		 'limit' => $limit,
										   		 'page'=> $page,
										   		 'order'=>'TcAccione.fecha_inicial DESC','TcAccione.tc_estado_accione_id'));		           		
							 }
							 $Arrays1 = array();
							 $Arrays = array();
							 foreach ($accionA as $k => $v)
							 {
							 	foreach ($v as $k1 => $v1)
							 	{
							 		foreach ($v1 as $k2 => $v2)
							 		{
							 			$Arrays1[$k1.'-'.$k2] = $v2;
							 		}
							 	}
							 	if ($v['TcAccione']['tc_estado_accione_id']== '1')
							 	{
							 		$Arrays1['action1']='icon-accept';
							 		$Arrays1['qtip1']='Completar '.ucwords( strtolower($v['MgTipoAccione']['descripcion']));
							 		$Arrays1['action2']='icon-cancel';
							 		$Arrays1['qtip2']='Anular '.ucwords( strtolower($v['MgTipoAccione']['descripcion']));
							 			
							 	}
							 	else
							 	{
							 		$Arrays1['action1']='';
							 		$Arrays1['qtip1']='';
							 		$Arrays1['action2']='';
							 		$Arrays1['qtip2']='';
							 	}
							 	$Arrays[] = $Arrays1;
							 }
							 $accionArray = $Arrays;
							 if (empty($count))
							 {
							 	$count = 0;
							 }
							 $this->set('total', $count);
							 $this->set('acciones',$accionArray);
	}

	//................................................................................................................
	function mostrar_todos($id=null,$tipo=null)
	{
		if(!empty($id) or $id<>0){
			$datos=$this->TcAccione->find('all',array('conditions'=>array('TcAccione.tc_contrato_id' =>$id,'TcAccione.tc_estado_accione_id <>'=>'1')));
			$this->set('tcAcciones',$datos);
			$this->set('contratoid',$id);

		}
		else {
			$datos=$this->TcAccione->find('all', array ('order'=>array('fecha_inicial'),'conditions'=>array('TcAccione.tc_estado_accione_id <>'=>'1','TcAccione.mg_tipo_accione_id'=>$tipo)));
			$this->set('tcAcciones', $datos);
			$this->set('contratoid',0);
			$this->set('tipo',$tipo);
		}
	}

	//................................................................................................................
	function ajax_validate() {
		Configure::write('debug', 0);
		if($this->RequestHandler->isAjax()) {
			$this->data['TcAccione'][$this->params['form']['field']] = $this->params['form']['value'];
			$this->TcAccione->set($this->data);
			if($this->TcAccione->validates()) {
				$this->autoRender = false;
			}
			else {
				$errorArray = $this->validateErrors($this->TcAccione);
				$this->set('error', $errorArray[$this->params['form']['field']]);
			}
		}
	}

	//................................................................................................................

	function autoComplete() {
		Configure::write('debug',0);
		$this->layout = 'ajax';
		$id_contrato= $this->data[$this->TcAccione]['tc_contrato_id'];
		$contratos = $this->TcContrato->find('all',
		array('conditions'=>array('TcContrato.contrato LIKE'=>$this->params['url']['q'].'%'),
   												   'fields'=>array('contrato', 'descripcion' )));
		$this->set('contratos', $contratos);
	}

	//................................................................................................................

	function cambiar_estado($id=null,$estado=null,$contratoid=null,$usuario=null){
		$data= array('TcAccione'=>array('id'=>$id,'tc_estado_accione_id'=>$estado,'fecha_final'=>date('d-m-Y'),'modificado_por'=> $usuario,'tc_contrato_id'=>$contratoid));
		$this->set('tcAccione', $data);
		if(!empty($this->data)){
			$this->data['TcAccione']['descripcion_edicion']=strtoupper($this->data['TcAccione']['descripcion_edicion']);
			$idcontrato=$this->data['TcAccione']['tc_contrato_id'];
			if($this->TcAccione->save($this->data)){
				$this->Session->setFlash('Datos Guardados Exitosamente'.$idcontrato);
				$this->redirect(array('controller'=>'TcAcciones','action'=>'mostrar',$idcontrato));
			}
			else {
				$this->Session->setFlash('Error NO se completo la accion');
			}
		}
	}
	//................................................................................................................

	function cambiar_estado_ext(){
		Configure::write('debug', '0');
		$this->layout = 'ajax';
		$Erros = array();
		if (!empty($this->data)) {
			$this->data['TcAccione']['descripcion_edicion']=strtoupper($this->data['TcAccione']['descripcion_edicion']);
			$this->data['TcAccione']['modificado_por'] =$this->Session->read('Auth.MgUsuario.usuario');
			if($this->TcAccione->save($this->data)){
				$response = array(
   		     		'success' => true,
		     		'errors' => $this->validateErrors($this->TcContrato)
				);
			}
			else {
				foreach ($this->validateErrors($this->TcContrato) as $key => $value)
				{
					$Erros['data[TcContrato]['.$key.']'] = $value;
				}

				$response = array(
   		     	'success' => false,
		     	'errors' =>$Erros// $this->validateErrors($this->TcContrato)
				);
			}
		}
		if (empty($this->data)) {
			$response = array(
   		     	'success' => false,
		     	'errors' =>$Erros// $this->validateErrors($this->TcContrato)
			);
		}
		$this->set('response',$response);
	}
	
	function combobox($tipo=null,$modelo=null, $campo=null)
	{
		Configure::write('debug', '0');
		$this->layout = "ajax";
		if(!empty($_POST['query']))
		$query = $_POST['query'];
		if ($tipo==1)
		{
			if (!empty($query) && $query<>'')
			{
				$count = $this->$modelo->find('count',
				array('conditions'=>array($modelo.'.'.$campo.' LIKE'=>strtoupper($query).'%')));
				$datos = $this->$modelo->find('all',
				array('fields'=>array('id', $campo),
        										'conditions'=>array($modelo.'.'.$campo.' LIKE'=>strtoupper($query).'%')));												 
			}
			else
			{
				$count = $this->$modelo->find('count');
				$datos = $this->$modelo->find('all',
				array('fields'=>array('id', $campo)));
			}
		}
		else
		{
			if (!empty($query) && $query<>'')
			{
				$count = $this->$modelo->find('count',
				array('conditions'=>array($modelo.'.id LIKE'=>strtoupper($query).'%')));
				$datos = $this->$modelo->find('all',
				array('fields'=>array('id', 'primer_nombre','segundo_nombre','primer_apellido','segundo_apellido'),
        											  'conditions'=>array($modelo.'.id LIKE'=>strtoupper($query).'%'),
        											  'limit'=>'10'));												 
			}
			else
			{
				$count = $this->$modelo->find('count');
				$datos = $this->$modelo->find('all',
				array('fields'=>array('id', 'primer_nombre','segundo_nombre','primer_apellido','segundo_apellido'),
        										'limit'=>'10'));											 
			}
		}
		$datosA = Set::extract($datos, '{n}.'.$modelo);
		$this->set('total', $count);
		$this->set('datos',$datosA);
	}
}




?>